A conventional message processing system may have several distributed message processing components. In such systems, it is difficult to provide a mechanism which gives a meaningful overall status for a particular message, i.e., one that completely and accurately describes the status of the processing of the message by the system. Typically, there is neither a central instance which orchestrates the message processing and controls all the independent message processing components, nor a fixed choreography which determines the order of the processing in the various components. Furthermore, new components can appear and disappear dynamically, which makes it difficult to determine an accurate status.